package week2;

import java.util.*;


/**
 *
 * 49. 字母异位词分组
 * https://leetcode-cn.com/problems/group-anagrams/
 *
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：6 ms, 在所有 Java 提交中击败了98.01% 的用户
 * 内存消耗：41.3 MB, 在所有 Java 提交中击败了62.59% 的用户
 *
 *
 */
public class Week2GroupAnagrams {

    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> anagramMap = new HashMap<String, List<String>>();
        for(String anagram : strs) {
            char[] charArray = anagram.toCharArray();
            Arrays.sort(charArray);
            String variant = new String(charArray);
            List<String> list = anagramMap.getOrDefault(variant, new ArrayList<String>());
            list.add(anagram);
            anagramMap.put(variant, list);
        }
        List<List<String>> resultList = new ArrayList<List<String>>();
        resultList.addAll(anagramMap.values());
        return resultList;
    }
}
